﻿using AutoMapper;
using PasteLoggerBoard.reportmodels;
using PasteLoggerBoard.serilogmodels;
using PasteLoggerBoard.usermodels;

namespace PasteLoggerBoard
{
    /// <summary>
    /// 
    /// </summary>
    public class PasteLoggerBoardApplicationAutoMapperProfile : Profile
    {

        /// <summary>
        /// 
        /// </summary>
        public PasteLoggerBoardApplicationAutoMapperProfile()
        {
            /* You can configure your AutoMapper mapping configuration here.
             * Alternatively, you can split your mapping configurations
             * into multiple profile classes for a better organization. */
            // DefaultModel:



            // *UserInfo*:
            CreateMap<UserInfo, UserInfoListDto>();
            CreateMap<UserInfo, UserInfoDto>();
            CreateMap<UserInfo, UserInfoUpdateDto>();
            CreateMap<UserInfoUpdateDto, UserInfo>();
            CreateMap<UserInfoAddDto, UserInfo>();

            // *RoleInfo*:
            CreateMap<RoleInfo, RoleInfoListDto>();
            CreateMap<RoleInfo, RoleInfoDto>();
            CreateMap<RoleInfo, RoleInfoUpdateDto>();
            CreateMap<RoleInfoUpdateDto, RoleInfo>();
            CreateMap<RoleInfoAddDto, RoleInfo>();

            // *GradeInfo*:
            CreateMap<GradeInfo, GradeInfoListDto>();
            CreateMap<GradeInfo, GradeInfoDto>();
            CreateMap<GradeInfo, GradeInfoUpdateDto>();
            CreateMap<GradeInfoUpdateDto, GradeInfo>();
            CreateMap<GradeInfoAddDto, GradeInfo>();

            // *GradeRole*:
            CreateMap<GradeRole, GradeRoleListDto>();
            CreateMap<GradeRole, GradeRoleDto>();
            CreateMap<GradeRole, GradeRoleUpdateDto>();
            CreateMap<GradeRoleUpdateDto, GradeRole>();
            CreateMap<GradeRoleAddDto, GradeRole>();

            //// *PartInfo*:
            //CreateMap<PartInfo, PartInfoListDto>();
            //CreateMap<PartInfo, PartInfoDto>();
            //CreateMap<PartInfo, PartInfoUpdateDto>();
            //CreateMap<PartInfoUpdateDto, PartInfo>();
            //CreateMap<PartInfoAddDto, PartInfo>();

            //// *BindUserPart*:
            //CreateMap<BindUserPart, BindUserPartListDto>();
            //CreateMap<BindUserPart, BindUserPartDto>();
            //CreateMap<BindUserPart, BindUserPartUpdateDto>();
            //CreateMap<BindUserPartUpdateDto, BindUserPart>();
            //CreateMap<BindUserPartAddDto, BindUserPart>();

            //// #DayReport#
            //CreateMap<DayReport, DayReportListDto>();
            //CreateMap<DayReport, DayReportDto>();
            //CreateMap<DayReport, DayReportUpdateDto>();
            //CreateMap<DayReportUpdateDto, DayReport>();
            //CreateMap<DayReportAddDto, DayReport>();

            //// #LogError#
            CreateMap<LogError, LogErrorListDto>();
            //CreateMap<LogError, LogErrorDto>();
            //CreateMap<LogError, LogErrorUpdateDto>();
            //CreateMap<LogErrorUpdateDto, LogError>();
            //CreateMap<LogErrorAddDto, LogError>();

            //// #LogException#
            CreateMap<LogException, LogExceptionListDto>();
            //CreateMap<LogException, LogExceptionDto>();
            //CreateMap<LogException, LogExceptionUpdateDto>();
            //CreateMap<LogExceptionUpdateDto, LogException>();
            //CreateMap<LogExceptionAddDto, LogException>();

            //// #LogInfo#
            CreateMap<LogInfo, LogInfoListDto>();
            //CreateMap<LogInfo, LogInfoDto>();
            //CreateMap<LogInfo, LogInfoUpdateDto>();
            //CreateMap<LogInfoUpdateDto, LogInfo>();
            //CreateMap<LogInfoAddDto, LogInfo>();

            //// #LogWarning#
            CreateMap<LogWarning, LogWarningListDto>();
            //CreateMap<LogWarning, LogWarningDto>();
            //CreateMap<LogWarning, LogWarningUpdateDto>();
            //CreateMap<LogWarningUpdateDto, LogWarning>();
            //CreateMap<LogWarningAddDto, LogWarning>();

            // #WebHooker#
            CreateMap<WebHooker, WebHookerListDto>();
            CreateMap<WebHooker, WebHookerDto>();
            CreateMap<WebHooker, WebHookerUpdateDto>();
            CreateMap<WebHookerUpdateDto, WebHooker>();
            CreateMap<WebHookerAddDto, WebHooker>();

            // #WebHookLink#
            CreateMap<WebHookLink, WebHookLinkListDto>();
            CreateMap<WebHookLink, WebHookLinkDto>();
            CreateMap<WebHookLink, WebHookLinkUpdateDto>();
            CreateMap<WebHookLinkUpdateDto, WebHookLink>();
            CreateMap<WebHookLinkAddDto, WebHookLink>();

            // #WebHookLog#
            CreateMap<WebHookLog, WebHookLogListDto>();
            CreateMap<WebHookLog, WebHookLogDto>();
            CreateMap<WebHookLog, WebHookLogUpdateDto>();
            CreateMap<WebHookLogUpdateDto, WebHookLog>();
            CreateMap<WebHookLogAddDto, WebHookLog>();

            // #AppInfo#
            CreateMap<AppInfo, AppInfoListDto>();
            CreateMap<AppInfo, AppInfoDto>();
            CreateMap<AppInfo, AppInfoUpdateDto>();
            CreateMap<AppInfoUpdateDto, AppInfo>();
            CreateMap<AppInfoAddDto, AppInfo>();

        }
    }
}